package com.ruoyi.admin.service;

import java.util.List;
import com.ruoyi.admin.domain.ZhxCollectBook;
import com.ruoyi.admin.domain.vo.ZhxBookAndInfoVo;

/**
 * 用户收藏书籍Service接口
 * 
 * @author ruoyi
 * @date 2024-11-11
 */
public interface IZhxCollectBookService 
{
    /**
     * 查询用户收藏书籍
     * 
     * @param collectBookId 用户收藏书籍主键
     * @return 用户收藏书籍
     */
    public ZhxCollectBook selectZhxCollectBookByCollectBookId(Long collectBookId);

    /**
     * 查询用户收藏书籍列表
     * 
     * @param zhxCollectBook 用户收藏书籍
     * @return 用户收藏书籍集合
     */
    public List<ZhxCollectBook> selectZhxCollectBookList(ZhxCollectBook zhxCollectBook);

    /**
     * 查询用户收藏书籍列表
     * and书籍信息
     * @param zhxCollectBook 用户收藏书籍
     * @return 用户收藏书籍集合
     */
    public List<ZhxBookAndInfoVo> selectZhxCollectBookListAndInfoVo(ZhxCollectBook zhxCollectBook);

    /**
     * 新增用户收藏书籍
     * 
     * @param zhxCollectBook 用户收藏书籍
     * @return 结果
     */
    public int insertZhxCollectBook(ZhxCollectBook zhxCollectBook);

    /**
     * 新增用户收藏书籍
     * 书籍收藏数+1
     * 书籍人气值+5
     * @param zhxCollectBook 用户收藏书籍
     * @return 结果
     */
    public int insertZhxCollectBookTodo(ZhxCollectBook zhxCollectBook);

    /**
     * 修改用户收藏书籍
     * 
     * @param zhxCollectBook 用户收藏书籍
     * @return 结果
     */
    public int updateZhxCollectBook(ZhxCollectBook zhxCollectBook);

    /**
     * 批量删除用户收藏书籍
     * 
     * @param collectBookIds 需要删除的用户收藏书籍主键集合
     * @return 结果
     */
    public int deleteZhxCollectBookByCollectBookIds(Long[] collectBookIds);

    /**
     * 删除用户收藏书籍信息
     * 
     * @param collectBookId 用户收藏书籍主键
     * @return 结果
     */
    public int deleteZhxCollectBookByCollectBookId(Long collectBookId);

    /**
     * 删除用户收藏书籍信息
     * 书籍收藏数-1
     * 书籍人气值-5
     * @param collectBookId 用户收藏书籍主键
     * @return 结果
     */
    public int deleteZhxCollectBookByCollectBookIdTodo(Long collectBookId);

}
